class MyQueue {
public:
    stack<int> st1;
    stack<int> st2;
    MyQueue() {

    }
    
     void push(int x) {
        st1.push(x);
    }
    
    int pop() {
        if(st2.empty()){
            while(!st1.empty())
            {
                st2.push(st1.top());
                st1.pop();
            }
        }
        int result=st2.top();
        st2.pop();
        return result;
    }
    int peek() {
        int res=this->pop();
        st2.push(res);
        return res;
    }
    
    bool empty() {
        return st2.empty()&&st1.empty();
    }
};

